Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is also a process of writing and maintaining the source code. The writing of the source code may be referred to as “building” the software. The process of building a computer program is usually managed by a build tool, a program that coordinates and controls other programs. Examples of such programs are Meister by OpenMake® Software, Apache Ant™, Rake, etc.
In building the computer program, a process referred to as “continuous integration,” may be utilized in which all the software developers' changes to the computer program are tested and reported when they are added to the mainline code base, which may be several times a day. Furthermore, in connection with building the computer program, software tools may be used to debug (process of finding and resolving defects or problems within a computer program that prevent correct operation of the computer software or system) the built computer program during the continuous integration phase prior to being released. Debugging of the built computer program requires extensive knowledge and experience with such software tools by the software developers. In particular, extensive knowledge and experience is necessary to understand the tools as well as the error messages provided by the tools. The failure points become more complex as the build grows in complexity thereby typically requiring a small dedicated team or a software engineer with extensive years of experience in these environments and tools to debug and fix the broken builds. Furthermore, new debugging software tools are constantly being developed thereby resulting in new “standard” debugging tools continuously being created. The pressure for these teams to perform and stay current on these latest standard debugging tools is too daunting, even for a dedicated team of several software engineers.
As a result, there is not currently a means for easily identifying potential errors in the computer program (code) after it is built but prior to release due to the various number of software debugging tools and the extensive knowledge and experience required of the software developers of these software tools and the error messages provided by the tools.